package sort.quick;

public class sortColors {
    public void swap(int[] nums, int i, int j) {
        int tem = nums[i];
        nums[i] = nums[j];
        nums[j] = tem;
    }

    public void sortColors(int[] nums) {
        int n = nums.length;
        int l = -1;
        int r = n;
        int key = 1;
        int i = 0;
        while (i < r) {
            if (nums[i] < key) {
                swap(nums,++l,i++);
            } else if (nums[i] == key) {
                i++;
            } else {
                swap(nums,--r,i);
            }
        }

    }


    public void sortColors1(int[] nums) {
        int n = nums.length;
        int l = -1;
        int r = n;
        int key = 1;
        int i = 0;
        while (i < r) {
            if (nums[i] < key) {
                int tem = nums[++l];
                nums[l] = nums[i];
                nums[i++] = tem;
            } else if (nums[i] == key) {
                i++;
            } else {
                int tem = nums[--r];
                nums[r] = nums[i];
                nums[i] = tem;
            }
        }

    }
}
